
<template>
<div style="margin: 0;padding: 0">
  <el-container>
    <!--页面表头设计-->
    <el-header style="height: 7vh" >
      <el-link class="headMain" href="http://10.255.96.48:3404/">俄动力质量管理系统</el-link>
      <span class="center-text">控制计划管理</span>
    </el-header>
    <el-container>
      <el-aside width="200px">
        <div>
          <el-input
              placeholder="输入关键字进行过滤"
              v-model="filterText"
              style="width: 160px">
          </el-input>
        </div>
        <el-tree
            style="margin: 10px 8px;"
            :data="treeControlPlan"
            :props="defaultProps"
            default-expand-all
            @node-click="treeClick"
            :filter-node-method="filterNode"
            ref="tree"></el-tree>
      </el-aside>
      <el-container>

        <!--主体设计-->
      <el-main style="height:79vh ">
        <div style="height: 100%">
          <el-table
              :data="tableData"
              style="width: 100%"
              height="100%"
              size="mediut">
            <el-table-column
                :prop="operation"
                label="过程名称/操作描述"
                width="150">
            </el-table-column>
            <el-table-column
                :prop="device"
                label="机器、装置、夹具、工装"
                width="150">
            </el-table-column>
            <el-table-column label="特性">
              <el-table-column
                  :prop="numberOrder"
                  label="编号"
                  width="120">
              </el-table-column>
              <el-table-column
                  :prop="product"
                  label="产品"
                  width="120">
              </el-table-column>
              <el-table-column
                  :prop="processUse"
                  label="过程"
                  width="120">
              </el-table-column>
            </el-table-column>
            <el-table-column
                prop="characteristic"
                label="特殊特性分类"
                width="120">
            </el-table-column>
            <el-table-column
                label="方法"
                style="text-align: center"
                >
              <el-table-column
                label="产品/过程规范/公差"
                width="250px"
                :prop="specification"
                fixed></el-table-column>
              <el-table-column
              label="评价/测量技术"
              width="100px"
              :prop="measure"></el-table-column>
              <el-table-column
                  label="容量"
                  width="100px"
                  :prop="capacity"></el-table-column>
              <el-table-column
                  label="频率"
                  width="100px"
                  :prop="frequency"></el-table-column>
              <el-table-column
                  label="控制方法"
                  width="100px"
                  :prop="method"></el-table-column>
              <el-table-column
                  label="责任部门"
                  width="100px"
                  v-slot:default="scope">
                <el-link v-if="languageS==='chinese'">{{scope.row.department.split('/')[0]}}</el-link>
                <el-link v-if="languageS==='english'">{{scope.row.department.split('/')[1]}}</el-link>
                <el-link v-if="languageS==='russian'">{{scope.row.department.split('/')[2]}}</el-link>
              </el-table-column>
            </el-table-column>
            <el-table-column
                label="反应计划"
                width="100px"
                prop="reaction"></el-table-column>
            <el-table-column label="编辑" width="220px" v-slot:default="scope" v-if="usePower===1">
              <el-link type="primary" @click="handleEdit(scope,1)">编辑&nbsp;&nbsp;</el-link>
              <el-link type="primary" @click="handleEdit(scope,2)">删除&nbsp;&nbsp;</el-link>
              <el-link type="primary" @click="handleEdit(scope,3)">向下插入&nbsp;&nbsp;</el-link>
              <el-link type="primary" @click="handleEdit(scope,4)">向上插入</el-link>
            </el-table-column>
            <el-table-column label="频次检测" width="90px" v-slot:default="scopeTesting" v-if="usePower===1">
              <span v-if="scopeTesting.row.controlTesting !==''">启用</span>&nbsp;&nbsp;
              <el-link type="primary" @click="testing(scopeTesting,1)" v-if="scopeTesting.row.product!=='请输入'">编辑</el-link>
            </el-table-column>

          </el-table>
          <el-button @click="handleEdit(null,5)" v-if="tableData.length===0  && opSign!==''">插入一行</el-button>
        </div>
      </el-main>

        <!--底部的内容-->
        <el-footer>
          <el-button plain size="small" @click="languageSelectChinese">中  文</el-button>
          <el-button plain size="small" @click="languageSelectRussian">Русский язык</el-button>
          <el-button plain size="small" @click="languageSelectEnglish">English</el-button>
        </el-footer>
      </el-container>
    </el-container>
  </el-container>

<!--对控制计划内容进行增删改操作的弹窗-->
  <el-dialog
      :title="titleMessage"
      :visible.sync="dialogVisible"
      width="80%"
      :before-close="handleClose">
    <span>
      <!--放置修改的表单-->
      <el-form :inline="true" :model="tableDataTemp" status-icon :rules="tableDataTemprules" ref="tableDataTemp" class="demo-form-inline" >
        <div class="UploadS">
         <el-form-item label="零件/过程编号">

          <el-input v-model="tableDataTemp.processNumber"
                    placeholder="零件/过程编号"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
         <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.processNumberEnglish"
                    placeholder="零件/过程编号(English)"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
         <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.processNumberRussian"
                    placeholder="(Russian)"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
          <br>
        <el-form-item label="过程名称/操作描述">
          <el-input v-model="tableDataTemp.operation"
                    placeholder="过程名称/操作描述"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.operationEnglish"
                    placeholder="(English)"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.operationRussian"
                    placeholder="(Russian)"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
          <br>
        <el-form-item label="机器、夹具、装置、工装">
          <el-input v-model="tableDataTemp.device"
                    placeholder="机器、夹具、装置、工装"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="（English）">
          <el-input v-model="tableDataTemp.deviceEnglish"
                    placeholder="(English）"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="（Russian）">
          <el-input v-model="tableDataTemp.deviceRussian"
                    placeholder="（Russian）"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
         </div>
        <br>
        <div class="UploadS">
        <el-form-item label="编号">
          <el-input v-model="tableDataTemp.numberOrder"
                    placeholder="编号"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
          <br>
        <el-form-item label="产品">
          <el-input v-model="tableDataTemp.product"
                    placeholder="产品"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.productEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
         <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.productRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="过程">
          <el-input v-model="tableDataTemp.processUse"
                    placeholder="过程"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.processUseEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.processUseRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        </div>
        <br>
        <div class="UploadS">
        <el-form-item label="特殊特性分类">
          <el-input v-model="tableDataTemp.characteristic"
                    placeholder="特殊特性分类"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
          <br>
        <el-form-item label="产品/过程规范/公差" >
          <el-input v-model="tableDataTemp.specification"
                    placeholder="产品/过程规范/公差"
                    type="textarea"
                    class="el-input"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="产品/过程规范/公差(English)">
          <el-input v-model="tableDataTemp.specificationEnglish"
                    placeholder="产品/过程规范/公差"
                    type="textarea"
                    class="el-input"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="产品/过程规范/公差(Russian)">
          <el-input v-model="tableDataTemp.specificationRussian"
                    placeholder="产品/过程规范/公差"
                    type="textarea"
                    class="el-input"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="评价/测量技术">
          <el-input v-model="tableDataTemp.measure"
                    placeholder="评价/测量技术"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.measureEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.measureRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="容量">
          <el-input v-model="tableDataTemp.capacity"
                    placeholder="过程"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.capacityEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.capacityRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="频率">
          <el-input v-model="tableDataTemp.frequency"
                    placeholder="过程"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.frequencyEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.frequencyRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <br>
        <el-form-item label="控制方法">
          <el-input v-model="tableDataTemp.method"
                    placeholder="过程"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(English)">
          <el-input v-model="tableDataTemp.methodEnglish"
                    placeholder="English"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        <el-form-item label="(Russian)">
          <el-input v-model="tableDataTemp.methodRussian"
                    placeholder="Russian"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>
        </div>
        <br>
        <div class="UploadS">
          <el-form-item label="责任部门" prop="department" class="item">
            <el-select v-model="tableDataTemp.department" placeholder="请选择">
              <el-option
                  v-for="item in optionsD"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        <el-form-item
            label="反应计划"
            prop="reaction">
          <el-input v-model="tableDataTemp.reaction"
                    placeholder="（请输入数字）"
                    type="textarea"
                    :autosize="{ minRows: 1, maxRows: 4}"></el-input>
        </el-form-item>

        </div>
        <br><br>
        <el-form-item>
      <el-button type="primary" @click="submitForm('tableDataTemp')">提交</el-button>
      <el-button @click="resetForm('tableDataTemp')">重置</el-button>
      <el-button @click="dialogVisible=false">取消</el-button>
      </el-form-item>
    </el-form>
  </span>
  </el-dialog>
  <!--点击“检测频次”中的“编辑按钮，弹窗(是装配车间的）-->
  <el-dialog
      :title="titleMessage"
      :visible.sync="dialogVisibleTesting"
      width="80%"
      :before-close="handleClose">
    <div>
      <control-testing-utils
       :language-s="languageS"
       :workshop-main="tableDataTemp.workshop"
       :click-id="clickId"
       :controlP="tableDataTemp"
       :table-data-testing-u="tableDataTestingU"
       :open-val="openVal"
       :drawing-p="parentLabel"
       :op-p="ChildrenLabel"></control-testing-utils>
    </div>
  </el-dialog>

  <!--（机加）点击主页上对频次件的编辑，弹窗显示-->
  <el-dialog
      :title="titleMessage"
      :visible.sync="macVisibleTesting"
      width="80%"
      :before-close="handleClose">
    <div>
      <div style="margin-top: 5px">
        <el-link @click="macTableShow(1,null)"
                 v-if="macTableData.length===0">新增</el-link>
      </div>
      <el-table :data="macTableData" style="width: 100%" border>
        <!-- 检测项目名称 project -->
        <el-table-column
            prop="project"
            label="检测项目"
            width="300">
        </el-table-column>

        <!-- 检测要求 requirement -->
        <el-table-column
            prop="requirement"
            label="检测要求"
            width="300">
        </el-table-column>

        <!-- 测量类型 testType -->
        <el-table-column
            prop="testType"
            label="测量类型"
            width="90"
            :formatter="testTypeFormatter">
        </el-table-column>

        <!-- 上公差 ceiling -->
        <el-table-column
            prop="ceiling"
            label="上公差"
            width="180">
        </el-table-column>

        <!-- 下公差 lower -->
        <el-table-column
            prop="lower"
            label="下公差"
            width="90">
        </el-table-column>

        <!-- 标准值 standard -->
        <el-table-column
            prop="standard"
            label="标准值"
            width="90">
        </el-table-column>

        <!-- 检测频次 frequency -->
        <el-table-column
            prop="frequency"
            label="检测频次"
            width="90"
            :formatter="frequencyFormatter">
        </el-table-column>

        <!-- 实施部门 department -->
        <el-table-column
            prop="department"
            label="实施部门"
            width="180"
            v-slot:default="scope">
          <span v-if="languageS==='chinese'">{{scope.row.department.split('/')[0]}}</span>
          <span v-else-if="languageS==='english'">{{scope.row.department.split('/')[1]}}</span>
          <span v-else-if="languageS==='russian'">{{scope.row.department.split('/'[2])}}</span>
        </el-table-column>

        <!-- 编辑 -->
        <el-table-column
            prop="editName"
            label="编辑"
            width="180" v-if="usePower===1"
            v-slot:default="scope">
          <el-link @click="macTableShow(2,scope)" style="margin-left: 10px">编辑</el-link>
          <el-link @click="macTableShow(4,scope)" style="margin-left: 10px">向下插入</el-link>
          <el-link @click="macTableShow(3,scope)" style="margin-left: 10px">删除</el-link>
        </el-table-column>

      </el-table>
    </div>
  </el-dialog>
  <!--点击“检测频次”中展示列表中的编辑按钮，弹窗(是机加车间的）-->
  <el-dialog
      :title="titleMessage"
      :visible.sync="tableFormDialog"
      width="610px"
      :before-close="handleClose">
    <el-form ref="tableForm" status-icon :model="macTableForm" label-width="100px" style="display: flex; flex-wrap: wrap;">
      <div style="display: flex;">
        <div>
          <!-- 第一项内容 -->
          <el-form-item label="产品图号：">
            <el-input v-model="macTableForm.drawing" placeholder="产品图号" disabled style="width: 175px"></el-input>
          </el-form-item>
        </div>
        <div>
          <!-- 第二项内容 -->
          <el-form-item label="工序号：">
            <el-input v-model="macTableForm.op" placeholder="工序号" disabled style="width: 175px"></el-input>
          </el-form-item>
        </div>
      </div>
      <el-form-item label="实施部门：">
        <el-select v-model="macTableForm.department" placeholder="实施部门" style="width: 450px">
          <el-option
              v-for="item in departmentOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="项目名称：" >
        <el-input v-model="macTableForm.project" placeholder="项目名称" style="width: 450px"></el-input>
      </el-form-item>
      <el-form-item label="检测要求：" >
        <el-input v-model="macTableForm.requirement" placeholder="检测要求" style="width: 450px"></el-input>
      </el-form-item>
      <div style="display: flex;">
        <div>
          <!-- 第一项内容 -->
          <el-form-item label="检测频次：">
            <el-select v-model="macTableForm.frequency" placeholder="频次" style="width: 175px">
              <el-option
                  v-for="item in frequencyOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
        <div>
          <!-- 第二项内容 -->
          <el-form-item label="检测类型：">
            <el-select v-model="macTableForm.testType" placeholder="请选择" style="width: 175px">
              <el-option
                  v-for="item in testTypeOptions"
                  :key="item.value"
                  :label="item.label"
                  :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </div>
      </div>
      <div style="display: flex;" v-if="macTableForm.testType===1">
        <div>
          <!-- 第一项内容 -->
          <el-form-item label="标准值：">
            <el-input v-model="macTableForm.standard" placeholder="标准值" style="width: 90px"></el-input>
          </el-form-item>
        </div>
        <div>
          <!-- 第二项内容 -->
          <el-form-item label="上公差：">
            <el-input v-model="macTableForm.ceiling" placeholder="上公差" style="width: 80px"></el-input>
          </el-form-item>
        </div>
        <div>
          <!-- 第三项内容 -->
          <el-form-item label="下公差：">
            <el-input v-model="macTableForm.lower" placeholder="下公差" style="width: 80px"></el-input>
          </el-form-item>
        </div>
      </div>
      <el-form-item label="信息确认：">
        <div style="display: flex; justify-content: center; align-items: center;">
          <el-button type="primary" @click="tableFormDialog=false" style="margin-left: 130px">取消</el-button>
          <el-button @click="macTableDataEdit">确认提交</el-button>
        </div>
      </el-form-item>
    </el-form>
  </el-dialog>

</div>
</template>

<script>
import ControlTestingUtils from "@/components/utils/controlTestingUtils.vue";
import {
  departmentOptions, frequencyOptions, testTypeOptions,
  tree_amc_product_op_chinese, tree_amc_product_op_english, tree_amc_product_op_russian,
  tree_workshop_product_op_chinese,
  tree_workshop_product_op_english,
  tree_workshop_product_op_russian
} from "@/configUse";
import _ from "lodash";

export default {
  name: "controlPlan",
  components: {
    ControlTestingUtils,
  },

  data() {
    // 限制工序号不写，或者工序号为非数字
    var validateReaction =(rule,value,callback)=>{
      if(!value){
        return callback(new Error("工序号不能为空"))
      }else if (!/^\d+$/.test(value)){
        callback(new Error('请输入数值'))
      }else {
        callback()
      }
    }
    return {
      //树形导航的变量
      ass:tree_workshop_product_op_chinese,
      mac:tree_amc_product_op_chinese,
      treeControlPlan:null,
      //导航筛选的变量
      filterText:'',
      //树形的导航用到的数据模板
      defaultProps: {
        children: 'children',
        label: 'label'
      },
      //用户点击到了OP，然后传递出来的节点
      opSign:'',
      /*用在main中的变量数据*/
      //弹窗出的窗口中，进行部门选择
      optionsD: departmentOptions,

      //记录列表显示数据的数组
       tableData: [
           {
        //记录主键ID
        id: null,
        //零件/过程编号
        processNumber: '',
        processNumberEnglish:'',
        processNumberRussian:'',
        //机器、夹具、装置、工装
        device: '',
        deviceEnglish:'',
        deviceRussian:'',
        //过程名称/操作描述
        operation: '',
        operationEnglish:'',
        operationRussian:'',
        //编号
        numberOrder: '',
        //产品
        product: '',
        productEnglish:'',
        productRussian:'',
        //过程
        processUse: '',
        processUseEnglish:'',
        processUseRussian:'',
        //特殊特性分类
        characteristic:'',
        //产品、过程规范、公差
        specification: '',
        specificationEnglish:'',
        specificationRussian:'',
        //评价、测量技术
        measure: '',
        measureEnglish:'',
        measureRussian:'',
        //容量
        capacity: '',
        capacityEnglish:'',
        capacityRussian:'',
        //频率
        frequency: '',
        frequencyEnglish:'',
        frequencyRussian:'',
        //控制方法
        method: '',
        methodEnglish:'',
        methodRussian:'',
        //责任部门
        department: '',
        departmentEnglish:'',
        departmentRussian:'',
        //反应计划
        reaction:0,
        //产品图号
        drawing: '',
        //工序号
        op: 0,
        //车间名称
        workshop:'',
        workshopEnglish:'',
        workshopRussian:'',
        //记录顺序用
        orderNumber:0,
       //记录删除标记
       deleteSign:1,
      }
        ],
      //记录需要修改的数据，以行为单位////传递给子组件，的孔子计划这一页点击行的所有数据
      tableDataTemp: {
        //记录主键ID
        id: null,
        //零件/过程编号
        processNumber: '',
        processNumberEnglish:'',
        processNumberRussian:'',
        //机器、夹具、装置、工装
        device: '',
        deviceEnglish:'',
        deviceRussian:'',
        //过程名称/操作描述
        operation: '',
        operationEnglish:'',
        operationRussian:'',
        //编号
        numberOrder: '',
        //产品
        product: '',
        productEnglish:'',
        productRussian:'',
        //过程
        processUse: '',
        processUseEnglish:'',
        processUseRussian:'',
        //特殊特性分类
        characteristic:'',
        //产品、过程规范、公差
        specification: '',
        specificationEnglish:'',
        specificationRussian:'',
        //评价、测量技术
        measure: '',
        measureEnglish:'',
        measureRussian:'',
        //容量
        capacity: '',
        capacityEnglish:'',
        capacityRussian:'',
        //频率
        frequency: '',
        frequencyEnglish:'',
        frequencyRussian:'',
        //控制方法
        method: '',
        methodEnglish:'',
        methodRussian:'',
        //责任部门
        department: '',
        departmentEnglish:'',
        departmentRussian:'',
        //反应计划
        reaction: 0,
        //产品图号
        drawing: '',
        //工序号
        op: 0,
        //车间名称
        workshop:'',
        workshopEnglish:'',
        workshopRussian:'',
        //记录顺序用
        orderNumber:0,
        //记录删除标记
        deleteSign:1,
      },

      //校验数据的对象
      tableDataTemprules:{
        reaction:[{validator:validateReaction,trigger:'blur'}],
      },
      //给频次检测组件传入数据，展现页面用
      tableDataTestingU: [{
        //主键
        id:-1,
        //车间名称（中文）
        workshop:'',
        //车间名称（英文）
        workshopEnglish:'',
        //车间名称（俄文）
        workshopRussian:'',
        //图号
        drawing:'',
        //工序号
        op:'',
        //记录检验项目
        project:'',
        //记录检验项目（英文）
        projectEnglish:'',
        //记录检验项目（俄文）
        projectRussian:'',
        //记录检验要求
        requirement:'',
        //记录检验要求（英文）
        requirementEnglish:'',
        //记录检验要求（俄文）
        requirementRussian:'',
        //记录检测类型
        typeTesting:'',
        //记录标准值
        standard:'',
        //记录上偏差
        ceiling:'',
        //记录下偏差
        lower:'',
        //frequency
        frequency:'',
        //记录实施部门
        department:'',
        //记录实施部门（英文）
        departmentEnglish:'',
        //记录实施部门（俄文）
        departmentRussian:'',
        //项目类型（1：代表控制计划项目，2：代表自行识别项目，3：代表控制计划加严项目）
        projectType:'',
        //关联控制计划的标记位
        controlTesting:'',
        //删除标记位（1：正常，0：删除）
        deleteSign:1,
        //记录顺序号
        orderNumber:0,
      },],
      //控制点击每一行的编辑时候用到
      dialogVisible:false,
      //添加工序、产品时用到
      dialogVisibleOP:false,
      //控制点击“频次检测”中“编辑”的弹窗（是装配的）
      dialogVisibleTesting:false,
      //控制检验频次中的编辑弹窗（是机加的）
      tableFormDialog:false,
      //展现机加检测项目与过程能力项目绑定关系的列表转速
      macVisibleTesting:false,
      //记录机加的检测项目的大列表
      macTableData: [{
        id: null, // 主键
        establishTime: null, // 创建时间
        updateTime: null, // 修改时间
        deleteSign: 0, // 删除标记位 (假设0表示未删除)
        editName: '', // 编辑人
        workshop: '', // 车间名称三种语言（‘/’分割）
        drawing: '', // 产品图号
        op: '', // 工序号
        project: '', // 检测项目名称（三种语言，用||隔开）
        requirement: '', // 检测要求（三种语言，用||隔开）
        testType: '', // 测量类型（是一个固定的内容：计量、计数、目视）
        ceiling: 0.0, // 上公差
        lower: 0.0, // 下公差
        standard: 0.0, // 标准值
        frequency: '', // 检测频次（是一个固定内容，查附录）
        department: '', // 实施部门（是一个固定值，查附录）
        projectCon: 0, // 检测类型，和控制计划的关系（固定值，查附录）
        orderNumber: 0, // 顺序号
        controlTesting: 0 // 控制计划关联号（记录控制计划id）
      }],
      //记录机加的检测频次修改的表单数据
      macTableForm:{
        id: null, // 主键
        establishTime: null, // 创建时间
        updateTime: null, // 修改时间
        deleteSign: 0, // 删除标记位 (假设0表示未删除)
        editName: '', // 编辑人
        workshop: '', // 车间名称三种语言（‘/’分割）
        drawing: '', // 产品图号
        op: '', // 工序号
        project: '', // 检测项目名称（三种语言，用||隔开）
        requirement: '', // 检测要求（三种语言，用||隔开）
        testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
        ceiling: 0.0, // 上公差
        lower: 0.0, // 下公差
        standard: 0.0, // 标准值
        frequency: '', // 检测频次（是一个固定内容，查附录）
        department: '', // 实施部门（是一个固定值，查附录）
        projectCon: 0, // 检测类型，和控制计划的关系（固定值，查附录）
        orderNumber: 0, // 顺序号
        controlTesting: 0 // 控制计划关联号（记录控制计划id）
      },
      //记录用户选择的是哪些编辑类型，1：代表编辑，2：代表删除，3：代表向下插入，4：向上插入
      whatType:0,
      /*用在aside的变量数据*/
      //记录页面呈现的导航信息
      TreeList:[],
      //记录后台返回的三种语言的导航信息
      TreeListAll:[],
      //点击导航栏，用到的变量
      ChildrenLabel:'no',
      parentLabel:'no',
      parentParentLable:'no',
      //记录用户选择的语言，默认为中文
      languageS:"chinese",
      //记录当前点击的车间英文名字信息 //记录英文的车间名称，用作很多查询数据用并且传递给后端，用作后端的数据补充
      //车间名称
      workshopChinese:'',
      workshop:'',
      workshopEnglish:'',
      //记录当前点击的车间俄文名
      workshopRussian:'',
      //记录当前点击的车间中文名称
      //记录用户选择的数据的索引号。
      selectedIndexUse:0,
      //主窗口弹窗信息
      titleMessage:'',
      //在添加工序、产品中，判断产品框是否允许用户使用
      isDisadled:true,
      //接收用户输入的工序号
      opUse:'',
      //接收用户输入的产品号
      drawingUse:'',
      /*更换表格数据，作为选择语言用的变量*/
      //零件/过程编号
      processNumber: '',
      //机器、夹具、装置、工装
      device: '',
      //过程名称/操作描述
      operation: '',
      //编号
      numberOrder: '',
      //产品
      product: '',
      //过程
      processUse: '',
      //特殊特性分类
      characteristic:'',
      //产品、过程规范、公差
      specification: '',
      //评价、测量技术
      measure: '',
      //容量
      capacity: '',
      //频率
      frequency: '',
      //控制方法
      method: '',
      //责任部门
      department: '',
      //记录顺序用
      orderNumber:null,

      //传给子组件用，是单击行的作用的方式是查询控制计划中开启的各项控制项目查询用
      clickId:0,

      //openVal,当打开弹窗的时候，进行传递数据用
      openVal:'',

      //用户权限相关的变量
      useName:'',//用户名称
      useId:'',//用户编号
      usePower:'',//用户权限

      //选择器的变量
      testTypeOptions:testTypeOptions,
      frequencyOptions:frequencyOptions,
      departmentOptions:departmentOptions,

      //机加:记录对频次检验的操作内容
      macTableDoe:0,
      macTableScope:null,
    }
  },
  methods: {
    // 通用，判断是不是数字的函数
    isNumber(value) {
      // 使用正则表达式检查是否是数字（包括正负数和小数）
      const regex = /^-?\d+(\.\d+)?$/;
      return regex.test(value);
    },
    //语言的判断过程
    LanguageSelection(type){
      //当选择的是英文的时候
      if (type==='english'){
            /*更换表格数据，作为选择语言用的变量*/
            //零件/过程编号
            this.processNumber='processNumberEnglish'
            //机器、夹具、装置、工装
            this.device='deviceEnglish'
            //过程名称/操作描述
            this.operation='operationEnglish'
            //编号
            this.numberOrder='numberOrderEnglish'
            //产品
            this.product='productEnglish'
            //过程
            this.processUse='processUseEnglish'
            //产品、过程规范、公差
            this.specification='specificationEnglish'
            //评价、测量技术
            this.measure='measureEnglish'
            //容量
            this.capacity='capacityEnglish'
            //频率
            this.frequency='frequencyEnglish'
            //控制方法
            this.method='methodEnglish'
            //责任部门
            this.department='departmentEnglish'
            //车间名称
            this.workshop='workshopEnglish'

      }
      else if (type==='chinese'){
        /*更换表格数据，作为选择语言用的变量*/
        //零件/过程编号
        this.processNumber='processNumber'
        //机器、夹具、装置、工装
        this.device='device'
        //过程名称/操作描述
        this.operation='operation'
        //编号
        this.numberOrder='numberOrder'
        //产品
        this.product='product'
        //过程
        this.processUse='processUse'
        //产品、过程规范、公差
        this.specification='specification'
        //评价、测量技术
        this.measure='measure'
        //容量
        this.capacity='capacity'
        //频率
        this.frequency='frequency'
        //控制方法
        this.method='method'
        //责任部门
        this.department='department'
        //车间名称
        this.workshop='workshop'
      }
      else if (type==='russian'){
        /*更换表格数据，作为选择语言用的变量*/
        //零件/过程编号
        this.processNumber='processNumberRussian'
        //机器、夹具、装置、工装
        this.device='deviceRussian'
        //过程名称/操作描述
        this.operation='operationRussian'
        //编号
        this.numberOrder='numberOrderRussian'
        //产品
        this.product='productRussian'
        //过程
        this.processUse='processUseRussian'
        //产品、过程规范、公差
        this.specification='specificationRussian'
        //评价、测量技术
        this.measure='measureRussian'
        //容量
        this.capacity='capacityRussian'
        //频率
        this.frequency='frequencyRussian'
        //控制方法
        this.method='methodRussian'
        //责任部门
        this.department='departmentRussian'
        //车间名称
        this.workshop='workshopRussian'
      }
    },
    //单击控制计划的树形导航结构
    treeClick(data,node){
      //这里的所有接口都走到《控制计划页的接口》.并且重新整理数据表。使用新的数据表。
      //根据点击的内容，查询控制计划中的信息
      this.opSign=''
      if (data.label.includes('OP') || data.label.includes('GG') || data.label.includes('HL')){
        //给外部传递，已经点击到了工序环节的标记,是把整个节点都传递出去；
        this.opSign=node
        //表明现在的点击是已经到了工序部位了。
        // 向后端发送请求，按照工序号、产品名称、车间名称进行筛选需要的内容
        this.$request.post('/inquiryControlPlanByOp',{
          firstFieldName:'workshop',
          firstFieldVal:node.parent.parent.data.label,
          secondFieldName:'drawing',
          secondFieldVal:node.parent.data.label,
          thirdFieldName:'op',
          thirdFieldVal:data.label,
        })
            .then(result=>{
              if (result.code === 401) {
                this.$router.push('UserLogin')
                alert("您未登录，请登录")
              }else {
                //对大表赋值
                  this.tableData=result.data
                  //对给子组件的变量进行赋值
                  this.ChildrenLabel=data.label
                  this.parentLabel=node.parent.data.label
                  this.parentParentLable=node.parent.parent.label

              }
            })
      }
    },
    //导航筛选的函数
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    //弹窗点击关闭时候的提示
    handleClose(done) {
      this.$confirm('确认关闭？')
          .then(_ => {
            console.log(_)
            done();
          })
          .catch(_ => {
            console.log(_)
          });
    },
    //点击主页上的“编辑”中的4个不同的项目，进行不同的反应
    handleEdit(scope,doe) {
      if (this.opSign===''){
        alert("您未选择任何产品及工序，请选择后进行操作")
        return
      }
      //返回用户选择的类型
      this.whatType=doe
      if (scope!==null){
        //返回用户选择数据的index。
        this.selectedIndexUse=scope.$index
      }
      else {
        this.selectedIndexUse=-1
      }
      //点击“编辑”中的“编辑”按钮，弹窗展现内容
      if (doe===1){
        //打开一个赋值本行的数据
        this.tableDataTemp=this.tableData[scope.$index]
        this.titleMessage="提示：您选择的操作为：编辑\n 将修改以下数据"
        this.dialogVisible=true
      }
      else if (doe===3 ||doe===4){
        //打开一个空的弹窗,是向下或者向上插入
        this.tableDataTemp= {
          //记录主键ID
          id: 0,
          //零件/过程编号
          processNumber: '',
          processNumberEnglish:'',
          processNumberRussian:'',
          //机器、夹具、装置、工装
          device: '',
          deviceEnglish:'',
          deviceRussian:'',
          //过程名称/操作描述
          operation: '',
          operationEnglish:'',
          operationRussian:'',
          //编号
          numberOrder: '',
          //产品
          product: '',
          productEnglish:'',
          productRussian:'',
          //过程
          processUse: '',
          processUseEnglish:'',
          processUseRussian:'',
          //特殊特性分类
          characteristic: 0,
          //产品、过程规范、公差
          specification: '',
          specificationEnglish:'',
          specificationRussian:'',
          //评价、测量技术
          measure: '',
          measureEnglish:'',
          measureRussian:'',
          //容量
          capacity: '',
          capacityEnglish:'',
          capacityRussian:'',
          //频率
          frequency: '',
          frequencyEnglish:'',
          frequencyRussian:'',
          //控制方法
          method: '',
          methodEnglish:'',
          methodRussian:'',
          //责任部门
          department: '',
          departmentEnglish:'',
          departmentRussian:'',
          //反应计划
          reaction: 0,
          //产品图号
          drawing: '',
          //工序号
          op: 0,
          //车间名称
          workshop:'',
          workshopEnglish:'',
          workshopRussian:'',
          //记录顺序号，进行排序用
          orderNumber:0,
        }
        //把固定的字段赋值给tableDataTemp（车间名称，图号，工序号）
        this.tableDataTemp.workshop=this.tableData[0].workshop
        this.tableDataTemp.workshopEnglish=this.tableData[0].workshopEnglish
        this.tableDataTemp.workshopRussian=this.tableData[0].workshopRussian
        this.tableDataTemp.drawing=this.tableData[0].drawing
        this.tableDataTemp.op=this.tableData[0].op
        if (doe===3){
          this.titleMessage="提示：您选择的是向下插入行\n 将修改以下数据"
        }
        else {
          this.titleMessage="提示：您选择的是向上插入行\n 将修改以下数据"
        }
        this.dialogVisible=true
      }
      else if (doe===2){
        //打开一个赋值本行的数据
        this.tableDataTemp=this.tableData[scope.$index]
        this.titleMessage="提示：您选择的操作为：删除\n 将删除以下数据"
        this.dialogVisible=true
      }
      else if (doe===5){
        // 插入一个全新的一行
        this.tableDataTemp= {
          //记录主键ID
          id: 0,
          //零件/过程编号
          processNumber: '',
          processNumberEnglish:'',
          processNumberRussian:'',
          //机器、夹具、装置、工装
          device: '',
          deviceEnglish:'',
          deviceRussian:'',
          //过程名称/操作描述
          operation: '',
          operationEnglish:'',
          operationRussian:'',
          //编号
          numberOrder: '',
          //产品
          product: '',
          productEnglish:'',
          productRussian:'',
          //过程
          processUse: '',
          processUseEnglish:'',
          processUseRussian:'',
          //特殊特性分类
          characteristic: 0,
          //产品、过程规范、公差
          specification: '',
          specificationEnglish:'',
          specificationRussian:'',
          //评价、测量技术
          measure: '',
          measureEnglish:'',
          measureRussian:'',
          //容量
          capacity: '',
          capacityEnglish:'',
          capacityRussian:'',
          //频率
          frequency: '',
          frequencyEnglish:'',
          frequencyRussian:'',
          //控制方法
          method: '',
          methodEnglish:'',
          methodRussian:'',
          //责任部门
          department: '',
          departmentEnglish:'',
          departmentRussian:'',
          //反应计划
          reaction: 0,
          //产品图号
          drawing: '',
          //工序号
          op: 0,
          //车间名称
          workshop:'',
          workshopEnglish:'',
          workshopRussian:'',
          //记录顺序号，进行排序用
          orderNumber:0,
        }
        //把固定的字段赋值给tableDataTemp（车间名称，图号，工序号）
        if (this.opSign.parent.parent.data.label==='装配车间' || this.opSign.parent.parent.data.label==='Assembly workshop' || this.opSign.parent.parent.data.label==='Сборочная линия'){
          this.tableDataTemp.workshop='装配车间/Assembly workshop/Сборочная линия'
        }
        else if (this.opSign.parent.parent.data.label==='机加车间' || this.opSign.parent.parent.data.label==='Machining workshop' || this.opSign.parent.parent.data.label==='обработки Линия'){
          this.tableDataTemp.workshop='机加车间/Machining workshop/обработки Линия'
        }
        this.tableDataTemp.drawing=this.opSign.parent.data.label
        this.tableDataTemp.op=this.opSign.data.label
        this.titleMessage='插入一行'
        this.dialogVisible=true
      }
    },
    //点击弹出的窗口“提交”按钮后的动作，向后端发送数据，进行保存
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          //判断是否为空序，如果是，所有的执行插入过程
          if (this.whatType===5){
            //新插入一行
            this.tableDataTemp.orderNumber=0
            this.tableDataTemp.deleteSign=1
            //向后端发送数据
            this.$request.post("/controlPlanVoidInsert",this.tableDataTemp).then(result=>{
              this.dialogVisible=false
              alert(result.data)
              //给数据赋值，需要重新查询
              this.tableData.push(this.tableDataTemp)
            })
            this.dialogVisible=false
          }
          else {
            if (this.whatType===1){
              //编辑操作，不需要修改顺序号
              //执行修改一行的请求，根据id实现
              this.$request.put("/controlPlanVoidPut",this.tableDataTemp).then(rusult=>{
                //修改成功，刷新列表
                this.tableData=rusult.data
                this.LanguageSelection(this.languageS)
                this.dialogVisible=false
                alert("保存成功")

                //重新查询数据，并刷新
                this.$request.post('/inquiryControlPlanByOp',{
                  firstFieldName:'workshop',
                  firstFieldVal:this.opSign.parent.parent.data.label,
                  secondFieldName:'drawing',
                  secondFieldVal:this.opSign.parent.data.label,
                  thirdFieldName:'op',
                  thirdFieldVal:this.opSign.data.label,
                })
                    .then(result=>{
                      if (result.code === 401) {
                        this.$router.push('UserLogin')
                        alert("您未登录，请登录")
                      }else {
                        //对大表赋值
                        this.tableData=result.data
                        //对给子组件的变量进行赋值
                        this.ChildrenLabel=this.opSign.data.label
                        this.parentLabel=this.opSign.parent.data.label
                        this.parentParentLable=this.opSign.parent.parent.label
                      }
                    })
              })
            }
            else if (this.whatType===3){
              //执行的是向下插入操作，第一步对全体数据插入到数据中。
              //添加数据前，先将id设置为null
              this.tableDataTemp.id=null
              //把删除标记位设计为1
              this.tableDataTemp.deleteSign=1
              this.tableData.splice(this.selectedIndexUse+1,0,this.tableDataTemp)
              //重新做排序的顺序号
              for (let i = 0; i < this.tableData.length; i++) {
                this.tableData[i].orderNumber=i
                //为了保险，把所有循环的删除标记位都设置为1
                this.tableData[i].deleteSign=1

              }
              //向后端发送请求，把数据发给后端进行保存。
              this.$request.post('/controlPlanInsert',this.tableData).then(result=>{
                alert("插入成功，数据已更新")
                this.tableData=result.data
              })
              this.dialogVisible=false
            }
            else if (this.whatType===4){
              //执行的是向上插入操作，第一步对全体数据插入到数据中。
              //添加数据前，先将id设置为null
              this.tableDataTemp.id=null
              this.tableDataTemp.deleteSign=1
              this.tableData.splice(this.selectedIndexUse,0,this.tableDataTemp)
              //重新做排序的顺序号
              for (let i = 0; i < this.tableData.length; i++) {
                this.tableData[i].orderNumber=i
              }
              //向后端发送请求，把数据发给后端进行保存。
              this.$request.post('/controlPlanInsert',this.tableData).then(result=>{
                console.log(result.data)
                alert("插入成功，数据已更新")
              })
              this.dialogVisible=false
            }
            else if (this.whatType===2){
              //执行删除操作，本次删除设置为设立标记位，不进行真正删除，执行修改步骤，将标记位修改为0
              this.tableDataTemp.deleteSign=0
              this.$request.put("/controlPlanVoidPut",this.tableDataTemp).then(rusult=>{
                //修改成功，刷新列表
                this.tableData=rusult.data
                this.LanguageSelection(this.languageS)
                this.dialogVisible=false
                alert("保存成功并刷新")
              })
            }
          }
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    },
    //点击“频次检测”中的"编辑"，准备打开弹窗
    testing(scopeTesting,doe){
      // 如果是装配，去装配的数据表中去查
      if (this.opSign.parent.parent.data.label==='装配车间' || this.opSign.parent.parent.data.label==='Assembly workshop' || this.opSign.parent.parent.data.label==='Сборочная линия'){
        if (doe===1){
          //向后端请求数据,查询数据,是查询《频次检验》列表中的记录的和《控制计划》表的关联字段
          this.$request.post("/controlTestingListByclickId",{
            workshop:scopeTesting.row.workshop,
            drawing:scopeTesting.row.drawing,
            op:scopeTesting.row.op,
            controlTesting:scopeTesting.row.id
          }).then(result=>{
            if (result.code===401){
              this.$router.push('UserLogin')
              alert("您未登录，请登录")
            }else{
              this.tableDataTestingU=result.data
              if (this.tableDataTestingU.length===0){
                this.tableDataTestingU.push({
                  //主键
                  id:-1,
                  //车间名称（中文）
                  workshop:'',
                  //车间名称（英文）
                  workshopEnglish:'',
                  //车间名称（俄文）
                  workshopRussian:'',
                  //图号
                  drawing:'',
                  //工序号
                  op:'',
                  //记录检验项目
                  project:'请插入',
                  //记录检验项目（英文）
                  projectEnglish:'请插入',
                  //记录检验项目（俄文）
                  projectRussian:'请插入',
                  //记录检验要求
                  requirement:'请插入',
                  //记录检验要求（英文）
                  requirementEnglish:'请插入',
                  //记录检验要求（俄文）
                  requirementRussian:'请插入',
                  //记录检测类型
                  typeTesting:'请插入',
                  //记录标准值
                  standard:'请插入',
                  //记录上偏差
                  ceiling:'请插入',
                  //记录下偏差
                  lower:'请插入',
                  //frequency
                  frequency:'请插入',
                  //记录实施部门
                  department:'请插入',
                  //记录实施部门（英文）
                  departmentEnglish:'请插入',
                  //记录实施部门（俄文）
                  departmentRussian:'请插入',
                  //项目类型（1：代表控制计划项目，2：代表自行识别项目，3：代表控制计划加严项目）
                  projectType:'请插入',
                  //关联控制计划的标记位
                  controlTesting:'请插入'
                })
              }
              //传递数据,把点击的数据传递给子组件
              this.tableDataTemp=scopeTesting.row
              //传递点击行的ID，后端将用
              this.clickId=scopeTesting.row.id
              this.openVal=''
              //打开展现的行内容
              this.dialogVisibleTesting=true
              //设定1S后，触发
              setTimeout(() => {
                // 这里是你要在定时器触发时执行的代码
                this.openVal='open'
                // 需要注意的是，由于这个定时器只设置了一次，所以它只会在指定的时间后执行一次
              }, 500);
            }
          }).catch(error=>{
            alert(error)
          })
        }
      }
      //如果是机加，去机加的数据表中去查询
      else if (this.opSign.parent.parent.data.label==='机加车间' || this.opSign.parent.parent.data.label==='Machining workshop' || this.this.opSign.parent.parent.data.label==='обработки Линия'){
        console.log(scopeTesting.row.id)
        //向后端进行筛选，走的接口是按照3个字段进行筛选的方法
        this.$request.post('macTestConInquiryFourthField',{
          firstFieldName:'workshop',
          firstFieldVal:'机加车间/Machining workshop/обработки Линия',
          secondFieldName:'drawing',
          secondFieldVal:this.opSign.parent.data.label,
          thirdName:'op',
          thirdVal:this.opSign.data.label,
          fourthFieldName:'controlTesting',
          fourthFiledVal:scopeTesting.row.id.toString()
        }).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.macTableData=result.data
            console.log(this.macTableData,result.data)
            //传递数据,把点击的数据传递给子组件
            this.tableDataTemp=scopeTesting.row
            //传递点击行的ID，后端将用
            this.clickId=scopeTesting.row.id
            this.openVal=''
            //打开展现的行内容
            this.macVisibleTesting=true
            //设定1S后，触发
            setTimeout(() => {
              // 这里是你要在定时器触发时执行的代码
              this.openVal='open'
              // 需要注意的是，由于这个定时器只设置了一次，所以它只会在指定的时间后执行一次
            }, 500);
          }
        }).catch(error=>{
          alert(error)
        })
      }
    },

    //点击重置功能
    resetForm(formName) {
      this.$refs[formName].resetFields();
    },
    //当选择语言为中文时
    languageSelectChinese(){
      this.languageS="chinese"
      this.treeControlPlan=tree_workshop_product_op_chinese.concat(tree_amc_product_op_chinese)
      this.LanguageSelection('chinese')
    },
    //当选择语言为俄文时
    languageSelectRussian(){
      this.languageS="russian"
      this.treeControlPlan=tree_workshop_product_op_russian.concat(tree_amc_product_op_russian)
      this.LanguageSelection('russian')
    },
    //当选择语言为英语时
    languageSelectEnglish(){
      this.languageS="english"
      this.treeControlPlan=tree_workshop_product_op_english.concat(tree_amc_product_op_english)
      this.LanguageSelection('english')
    },
    //查询用户信息的函数
    inquiry(){
      //输入用户编号，向后端查询信息
      const useId=localStorage.getItem('userName').replace(/"/g, '');
      console.log(useId)
      this.$request.post('/useQueryPower',{
        queryFiledName:'controlPlan',
        userId:useId,
      }).then(result=>{
        if (result.code === 401) {
          this.$router.push('UserLogin')
          alert("您未登录，请登录")
        }else {
          this.useName=result.data.name
          this.usePower=result.data.controlPlan
          this.useId=useId
        }
      })
    },
    //对检验的频次项目进行操作，是机加的
    macTableShow(doe,scope){
      this.macTableDoe=doe
      this.macTableScope=scope
      //是新增
      if (doe===1){
        //数据初始化
        this.macTableForm={
          id: null, // 主键
          deleteSign: 1, // 删除标记位 (假设0表示未删除)
          editName: this.useName, // 编辑人
          workshop:'机加车间/Machining workshop/обработки Линия', // 车间名称三种语言（‘/’分割）
          drawing: this.opSign.parent.data.label, // 产品图号
          op: this.opSign.data.label, // 工序号
          project: '', // 检测项目名称（三种语言，用||隔开）
          requirement: '', // 检测要求（三种语言，用||隔开）
          testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
          ceiling: '', // 上公差
          lower: '', // 下公差
          standard: '', // 标准值
          frequency: '', // 检测频次（是一个固定内容，查附录）
          department: '', // 实施部门（是一个固定值，查附录）
          projectCon: 1, // 检测类型，和控制计划的关系（固定值，查附录）
          orderNumber: 0, // 顺序号
          controlTesting: this.clickId // 控制计划关联号（记录控制计划id）
        }
        this.titleMessage='您正在新建一条检查项目'
        this.tableFormDialog=true
      }
      //是编辑
      else if (doe===2){
        //赋值
        this.macTableForm=_.cloneDeep(scope.row)
        this.titleMessage='您正在修改一条检查项目'
        this.tableFormDialog=true
      }
      //是删除
      else if (doe===3){
        //赋值
        this.macTableForm=_.cloneDeep(scope.row)
        this.titleMessage='您正在删除一条检查项目'
        this.tableFormDialog=true
      }
      //是向下插入
      else if (doe===4){
        //数据初始化
        this.macTableForm={
          id: null, // 主键
          deleteSign: 1, // 删除标记位 (假设0表示未删除)
          editName: this.useName, // 编辑人
          workshop:'机加车间/Machining workshop/обработки Линия', // 车间名称三种语言（‘/’分割）
          drawing: this.opSign.parent.data.label, // 产品图号
          op: this.opSign.data.label, // 工序号
          project: '', // 检测项目名称（三种语言，用||隔开）
          requirement: '', // 检测要求（三种语言，用||隔开）
          testType: 1, // 测量类型（是一个固定的内容：计量、计数、目视）
          ceiling: '', // 上公差
          lower: '', // 下公差
          standard: '', // 标准值
          frequency: '', // 检测频次（是一个固定内容，查附录）
          department: '', // 实施部门（是一个固定值，查附录）
          projectCon: 1, // 检测类型，和控制计划的关系（固定值，查附录）
          orderNumber: 0, // 顺序号
          controlTesting: this.clickId // 控制计划关联号（记录控制计划id）
        }
        this.titleMessage='您正在向下插入一条检查项目'
        this.tableFormDialog=true
      }
    },
    //检验频次（机加）保存函数，点击提交
    macTableDataEdit(){
      //数据校验
      if (this.macTableForm.department==='' || this.macTableForm.department===null || this.macTableForm.department===undefined){
        this.$message.error('请选择部门')
        return;
      }
      else if (this.macTableForm.project==='' || this.macTableForm.project===null || this.macTableForm.project===undefined){
        this.$message.error('请写入检测项目')
        return
      }
      else if (this.macTableForm.requirement==='' || this.macTableForm.requirement===null || this.macTableForm.requirement===undefined){
        this.$message.error('请写入检测要求')
        return;
      }
      else if (this.macTableForm.frequency==='' || this.macTableForm.frequency===null || this.macTableForm.frequency===undefined){
        this.$message.error('请写入检测频次')
        return;
      }
      else if (this.macTableForm.ceiling==='' || this.macTableForm.ceiling===null || this.macTableForm.ceiling===undefined){
        this.$message.error('请写入上公差')
        return;
      }
      else if (this.macTableForm.lower==='' || this.macTableForm.lower===null || this.macTableForm.lower===undefined){
        this.$message.error('请写入下公差')
        return;
      }
      else if (this.macTableForm.standard==='' || this.macTableForm.standard===null || this.macTableForm.standard===undefined){
        this.$message.error('请写入标准值')
        return;
      }
      else if (this.macTableForm.ceiling<=this.macTableForm.lower){
        this.$message.error('公差带范围异常，请核对')
        return;
      }

      if (!this.isNumber(this.macTableForm.standard)){
        this.$message.error('标准值非数字，请更改')
        return;
      }
      else if (!this.isNumber(this.macTableForm.ceiling)){
        this.$message.error('上公差非数字，请更改')
        return;
      }
      else if (!this.isNumber(this.macTableForm.lower)){
        this.$message.error('下公差非数字，请更正')
        return;
      }
      //向后端写入数据
      //是新增
      if (this.macTableDoe===1){
        this.$request.post('macTestConInsertOne',this.macTableForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.$message.success('插入成功')
            this.macTableData.push(this.macTableForm)
            this.tableFormDialog=false
          }
        })
      }
      //是修改
      else if (this.macTableDoe===2){
        this.$request.post('macTestConEditOne',this.macTableForm).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.$message.success('修改成功')
            this.macTableData.splice([this.macTableScope.$index],1,this.macTableForm)
            this.tableFormDialog=false
          }
        })
      }
      //是删除
      else if (this.macTableDoe===3){
        this.$request.post('macTestConEditOneField',{
          id:this.macTableForm.id,
          firstFieldName:'deleteSign',
          firstFieldVal:0,
        }).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.macTableData.splice(this.macTableScope.$index,1)
            this.$message.success('删除成功')
            this.tableFormDialog=false
          }
        })
      }
      //是向下插入
      else if (this.macTableDoe===4){
        let temp=[]
        temp=_.cloneDeep(this.macTableData)
        temp.splice(this.macTableScope.$index+1,0,this.macTableForm)
        // 整理顺序号
        for (let i = 0; i < temp.length; i++) {
          temp[i].orderNumber=i
        }
        //向后端发送信息，发送的是list，这个端口专门是做排序并且插入一条信息用的
        this.$request.post('macTestConSortInsert',JSON.stringify(temp)).then(result=>{
          if (result.code === 401) {
            this.$router.push('UserLogin')
            alert("您未登录，请登录")
          }else {
            this.$message.success('保存成功')
            this.macTableData.splice(this.macTableScope.$index+1,0,this.macTableForm)
            this.tableFormDialog=false
          }
        })
      }
    },

    //回显到类别的对应的检验频次
    frequencyFormatter(row, column, cellValue) {
      const frequencyOptions =this.frequencyOptions

      // 查找与 cellValue 对应的 label
      const option = frequencyOptions.find(option => option.value === cellValue);

      // 如果找到了匹配的 label，就返回它，否则返回原始值
      return option ? option.label : cellValue;
    },
    //回显到类别对应的检验类型
    testTypeFormatter(row, column, cellValue) {
      const testTypeOptions =this.testTypeOptions

      // 查找与 cellValue 对应的 label
      const option = testTypeOptions.find(option => option.value === cellValue);

      // 如果找到了匹配的 label，就返回它，否则返回原始值
      return option ? option.label : cellValue;
    },
  },
  watch:{
    //监视导航筛选
    filterText(val) {
      this.$refs.tree.filter(val);
    },
  },
  mounted() {
    //设置初始的语言
    this.languageS='chinese'
    this.LanguageSelection('chinese')
    this.inquiry()
    //数据清空
    this.tableData=[]

    this.macTableData=[]
    console.log('到这里了',this.macTableData)
    //组合树形导航
    this.treeControlPlan=this.ass.concat(this.mac)
  }
}
</script>

<style scoped>
/* 主体左侧的工作步骤栏用到的数据包围的div的样式*/

.el-footer {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  border-left-color: white;
  border-top: white;
}

.el-aside {
  background-color: #ffffff;
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
  height: 89vh;
}

.el-main {
  color: #333;
  text-align: center;
  border-width: 3px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-left-color: white;
  border-style: solid; /* 设置边框样式为实线 */
  padding: 10px; /* 添加内边距 */
}

.el-input {
  width: 700px;
}

body > .el-container {
  margin-bottom: 40px;
}

.el-container:nth-child(5) .el-aside,
.el-container:nth-child(6) .el-aside {
  line-height: 260px;
}

.el-container:nth-child(7) .el-aside {
  line-height: 320px;
}

.UploadS{
  border-width: 1px; /* 设置边框宽度为3像素 */
  border-color: blue; /* 设置边框颜色为蓝色 */
  border-style: solid; /* 设置边框样式为虚线 */
  padding: 10px; /* 添加内边距 */
}
.headMain{
  color: #ffffff; /* 设置字体颜色为红色 */
  font-size: 18px;
}
.center-text {
  /* 使用 margin-left 和 margin-right auto 来实现居中效果 */
  margin-left: auto;
  margin-right: auto;
  /* 注意：如果 header 内只有这两个元素，你可能不需要 margin-right: auto */
}
</style>